-
Notifications
You must be signed in to change notification settings - Fork 169
Update dependency @openzeppelin/contracts-upgradeable to v5.4.0 [SECURITY] - autoclosed #601
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update dependency @openzeppelin/contracts-upgradeable to v5.4.0 [SECURITY] - autoclosed #601
Conversation
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
8ac53d0
to
e234f65
Compare
Caution Review the following alerts detected in dependencies. According to your organization's Security Policy, you must resolve all "Block" alerts before proceeding. Learn more about Socket for GitHub.
|
abbbc24
to
f696bcc
Compare
bb960bf
to
f0ffcd0
Compare
e64f0c1
to
9e81e94
Compare
9e81e94
to
7832736
Compare
This PR contains the following updates:
5.3.0
->5.4.0
GitHub Vulnerability Alerts
CVE-2025-54070
Impact
The
lastIndexOf(bytes,byte,uint256)
function of theBytes.sol
library may access uninitialized memory when the following two conditions hold: 1) the provided buffer length is empty (i.e.buffer.length == 0
) and position is not2**256 - 1
(i.e.pos != type(uint256).max
).The
pos
argument could be used to access arbitrary data outside of the buffer bounds. This could lead to the operation running out of gas, or returning an invalid index (outside of the empty buffer). Processing this invalid result for accessing thebuffer
would cause a revert under normal conditions.When triggered, the function reads memory at offset
buffer + 0x20 + pos
. If memory at that location (outside thebuffer
) matches the search pattern, the function would return an out of bound index instead of the expectedtype(uint256).max
. This creates unexpected behavior where callers receive a valid-looking index pointing outside buffer bounds.Subsequent memory accesses that don't check bounds and use the returned index must carefully review the potential impact depending on their setup. Code relying on this function returning
type(uint256).max
for empty buffers or using the returned index without bounds checking could exhibit undefined behavior.Patches
Upgrade to 5.4.0
Release Notes
OpenZeppelin/openzeppelin-contracts-upgradeable (@openzeppelin/contracts-upgradeable)
v5.4.0
Compare Source
Breaking changes
SignatureChecker
,Governor
and Governor's extensions. (#5716).Pragma changes
Changes by category
Account
Account
: Added a simple ERC-4337 account implementation with minimal logic to process user operations. (#5657)AccountERC7579
: Extension ofAccount
that implements support for ERC-7579 modules of type executor, validator, and fallback handler. (#5657)AccountERC7579Hooked
: Extension ofAccountERC7579
that implements support for ERC-7579 hook modules. (#5657)EIP7702Utils
: Add a library for checking if an address has an EIP-7702 delegation in place. (#5587)IERC7821
,ERC7821
: Interface and logic for minimal batch execution. No support for additionalopData
is included. (#5657)Governance
GovernorNoncesKeyed
: Extension ofGovernor
that adds support for keyed nonces when voting by sig. (#5574)Tokens
ERC20Bridgeable
: Implementation of ERC-7802 that makes an ERC-20 compatible with crosschain bridges. (#5739)Cryptography
Signers
AbstractSigner
,SignerECDSA
,SignerP256
, andSignerRSA
: Add an abstract contract and various implementations for contracts that deal with signature verification. (#5657)SignerERC7702
: Implementation ofAbstractSigner
for Externally Owned Accounts (EOAs). Useful with ERC-7702. (#5657)SignerERC7913
: Abstract signer that verifies signatures using the ERC-7913 workflow. (#5659)MultiSignerERC7913
: Implementation ofAbstractSigner
that supports multiple ERC-7913 signers with a threshold-based signature verification system. (#5659)MultiSignerERC7913Weighted
: Extension ofMultiSignerERC7913
that supports assigning different weights to each signer, enabling more flexible governance schemes. (#5741)Verifiers
ERC7913P256Verifier
andERC7913RSAVerifier
: Ready to use ERC-7913 verifiers that implement key verification for P256 (secp256r1) and RSA keys. (#5659)Other
SignatureChecker
: Add support for ERC-7913 signatures alongside existing ECDSA and ERC-1271 signature verification. (#5659)ERC7739
: An abstract contract to validate signatures following the rehashing scheme fromERC7739Utils
. (#5664)ERC7739Utils
: Add a library that implements a defensive rehashing mechanism to prevent replayability of smart contract signatures based on the ERC-7739. (#5664)Structures
EnumerableMap
: Add support forBytesToBytesMap
type. (#5658)EnumerableMap
: Addkeys(uint256,uint256)
that returns a subset (slice) of the keys in the map. (#5713)EnumerableSet
: Add support forStringSet
andBytesSet
types. (#5658)EnumerableSet
: Addvalues(uint256,uint256)
that returns a subset (slice) of the values in the set. (#5713)Utils
Arrays
: AddunsafeAccess
,unsafeMemoryAccess
andunsafeSetLength
forbytes[]
andstring[]
. (#5568)Blockhash
: Add a library that provides access to historical block hashes using EIP-2935's history storage, extending the standard 256-block limit to 8191 blocks. (#5642)Bytes
: FixlastIndexOf(bytes,byte,uint256)
with empty buffers and finite position to correctly returntype(uint256).max
instead of accessing uninitialized memory sections. (#5797)Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.